package com.nowcoder.community.dao;

import com.nowcoder.community.entity.Message;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.context.annotation.Bean;

import java.util.List;

/**
 * <p>Title: MessageMapper</p>
 * <p>author 12427</p>
 *
 * @version ver1.0
 * @date 2022/8/18 10:32
 */
@Mapper
public interface MessageMapper {

    // 查询当前用户的会话列表，针对每一个会话，只返回一条最新的私信
    List<Message> selectConversations(int userId, int offset , int limit) ;

    // 查询当前用户的会话数量
    int selectConversationCount(int userId) ;

    // 查询某个会话包含的私信列表
    List<Message> selectLetters(int userId , String conversationId , int offset , int limit) ;

    // 查询某个会话包含的私信数量
    int selectLetterCount(int userId , String conversationId) ;

    // 查询未读私信数量
    int selectLetterUnreadCount(int userId , String conversationId ) ;


    //新增一个消息
    int insertMessage(Message message);

    // 修改消息状态
    int updateStatus(List<Integer> ids, int status) ;

    // 根据id查找消息
    Message selectMessage(int id) ;


    // 查询某个主题下的最新通知
    Message selectLatestNotice(int userId , String topic) ;


    // 查询某个主题包含的数量
    int selectNoticeCount(int userId , String topic) ;


    // 查询未读的通知数量
    int selectNoticeUnreadCount(int userId , String topic) ;

    // 查询某个主题所包含的通知列表
    List<Message> selectNotice(int userId , String topic , int offset , int limit);


}
